package done.easy_101_200;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

/**
 * 191. Number of 1 Bits
 * <p>
 * 编写一个函数，输入是一个无符号整数，返回其二进制表达式中数字位数为 ‘1’ 的个数（也被称为汉明重量）。
 * <p>
 * 示例 1：
 * 输入：00000000000000000000000000001011  ->  11
 * 输出：3
 * 解释：输入的二进制串 00000000000000000000000000001011 中，共有三位为 '1'。
 * 示例 2：
 * 输入：00000000000000000000000010000000
 * 输出：1
 * 解释：输入的二进制串 00000000000000000000000010000000 中，共有一位为 '1'。
 * 2019-03-24 10:24 AM
 **/
@Slf4j
public class NumberOf1Bits {

    @SuppressWarnings("all")
    public int hammingWeight(int n) {
        // 190324 first
        return -1;
    }

    @Test
    public void test() {
        // 11 -> 00000000000000000000000000001011
        log.info("result:{}", hammingWeight(128));
    }
}





























/*
public int hammingWeight(int n) {
    int result = 0;

    for (int i = 0; i < 32; i++) {

        // 移位的结果累加到 result 上
        // 1&1 =1  1&0 = 0
        // 0000010101010101010101011101 & 1
        //   => 0000000000000000000000000001
        //   => 1
        result += (n & 1);

        // 向右移位
        n = n >> 1;
    }
    return result;
}
*/
